
package com.sasis.dao.ibatis;

import java.util.List;

import com.sasis.dao.ibatis.BaseDaoiBATIS;
import com.sasis.model.NoticeInfo;
import com.sasis.dao.NoticeInfoDao;

import org.springframework.orm.ObjectRetrievalFailureException;

public class NoticeInfoDaoiBatis extends BaseDaoiBATIS implements NoticeInfoDao {

    /**
     * @see com.sasis.dao.NoticeInfoDao#getNoticeInfos(com.sasis.model.NoticeInfo)
     */
    public List getNoticeInfos(final NoticeInfo noticeInfo) {
          return getSqlMapClientTemplate().queryForList("getNoticeInfos", noticeInfo);
    }

    /**
     * @see com.sasis.dao.NoticeInfoDao#getNoticeInfo(Integer id)
     */
    public NoticeInfo getNoticeInfo(Integer id) {
        NoticeInfo noticeInfo = (NoticeInfo) getSqlMapClientTemplate().queryForObject("getNoticeInfo", id);

        if (noticeInfo == null) {
            throw new ObjectRetrievalFailureException(NoticeInfo.class, id);
        }

        return noticeInfo;
    }

    /**
     * @see com.sasis.dao.NoticeInfoDao#saveNoticeInfo(NoticeInfo noticeInfo)
     */    
    public void saveNoticeInfo(final NoticeInfo noticeInfo) {
        Integer id = noticeInfo.getId();
        // check for new record
        if (id == null) {
            id = (Integer) getSqlMapClientTemplate().insert("addNoticeInfo", noticeInfo);
        } else {
            getSqlMapClientTemplate().update("updateNoticeInfo", noticeInfo);
        }
        if( id == null ) {
            throw new ObjectRetrievalFailureException(NoticeInfo.class, id);
        }
    }

    /**
     * @see com.sasis.dao.NoticeInfoDao#removeNoticeInfo(Integer id)
     */
    public void removeNoticeInfo(Integer id) {
        getSqlMapClientTemplate().update("deleteNoticeInfo", id);
    }
}
